<?php
/**
 * Created by PhpStorm.
 * User: Fan
 * Date: 2018/7/19
 * Time: 20:20
 */

namespace Modules\Admin\Service;


class TemplateService
{
    /**
     * 获取所有的模板数据
     */
    public function getAllTemplate(){
        //glob(public_path('/文件夹/*'));查看目标文件夹下的所有目录文件
        $templates = glob(public_path('/templates/*'));
        //dd($templates);
        //循环模板数据
        $configs = [];
        foreach ($templates as $v){
            //parseConfig()有配置文件的时候，会对配置文件进行处理，然后返回数组数据
            //如果没有配置文件，就不会又返回值，相当于null
            //dd($v);
            if ($config = $this->parseConfig($v)){
                $configs[]=$config;
            }
        }
        //dd($configs);
        return $configs;
    }

    /**
     * 处理模板配置
     */
    public function parseConfig($dir){
        //需要定义检查当前模板publics.json文件，如果没有就判定当前模板失效
        $package = $dir . '/publics.json';
        //如果存在
        if (is_file($package)){
            //获取配置文件内容
            $config = file_get_contents($package);
            //dd($config);
            //将获取到的内容转换为PHP语言数组
            //加true转换为数组，不加转换为对象
            $config = json_decode($config,true);
            //dd($config);
            //对配置文件的图片进行处理
            $config['preview'] = asset('/templates/' . basename($dir) . '/' .$config['preview']);
            //dd($config['preview']);
            $config['name'] = basename($dir);
            //dd($config['name']);
            //将配置文件返回
            return $config;
        }
    }
}